home *** CD-ROM | disk | FTP | other *** search
- %Item
- 0004 45 13 Extern.Hilfe
- %Text
- 2 Hilfe zur Sprache
- 1
- 1 Mini-Comp übersetzt eine Pascal-artige Sprache in aus-
- 1führbaren Maschinencode. Dabei kann eigener Assemblercode
- 1eingebaut werden, wenn bestimmte Regeln beachtet werden.
- 1Im folgenden soll die Syntax der Sprache mit Hilfe von
- 1Syntaxdiagrammen beschrieben werden. Um die Syntax eines
- 1bestimmten Befehls zu betrachten, klicken Sie diesen Be-
- 1fehl einfach an.
- 1
- 5Eine Abweichung zu den Diagrammen liegt vor :
- 1
- 1Bei den Schlüsselwörtern VAR, CONST und TYPE wird IMMER
- 1mindestens ein Eintrag erwartet, auch wenn das Diagramm
- 1dies nicht verlangt !
- 1
- 1Arrayindeces dürfen nur vom Typ Integer sein !
- 1
- 8Syntaxdiagramme :
- 1
- 1 Programm --» "PROGRAM" <id> ";"
- 1 <Const>
- 1 <Type>
- 1 <Var>
- 1 <Routines>
- 1 <Block> "."
- 1 Const --» "CONST" <Consts> | ¢
- 1 Consts --» <Consts> ";" <Constlist>
- 1 Constlist --» <id> "=" ( <Real> | <Int> |
- 1 <Char> | <Bool> |
- 1 <String> ) | ¢
- 1 Type --» "TYPE" <Typelist> | ¢
- 1 Typelist --» <Typelist> ";" <Typedef>
- 1 Typedef --» <id> "=" <Typeart>
- 1 Typeart --» <Array> | <Record> | <Simpel> | <id> |
- 1 <Aufz>
- 1 Aufz --» "(" <id> { "," <id> } ")"
- 1 Simpel --» "BOOLEAN" | "CHAR" | "REAL" | "TEXT" |
- 1 "STRING" | "FILE" | "INTEGER"
- 1 Array --» "ARRAY" "[" <int> "]" "OF" <Typeart>
- 1 Record --» "RECORD" <Recinh> "END"
- 1 Recinh --» <Recinh> ";" <Felddecl> | ¢
- 1 Felddecl --» <id> { "," <id> } ":" <Typart>
- 1 Var --» "VAR" <Varlist> | ¢
- 1 Varlist --» <Decl> { <Decl> }
- 1 Decl --» <id> { "," <id> } ":" <Typart> ";"
- 1 Routines --» { ( <Funcdecl> | <Procdecl | ¢ ) }
- 1 Funcdecl --» "FUNCTION" <id> <Param> ":" <Typart> ";"
- 1 <Const>
- 1 <Type>
- 1 <Var>
- 1 <Routines>
- 1 <Block> ";" |
- 1 "EXTERNAL" ";" | "FORWARD" ";"
- 1 Procdecl --» "PROCEDURE" <id> <Param> ";"
- 1 <Const>
- 1 <Type>
- 1 <Var>
- 1 <Routines>
- 1 <Block> ";" |
- 1 "EXTERNAL" ";" | "FORWARD" ";"
- 1 Param --» "(" <Parlist> ")" | ¢
- 1 Parlist --» [ "VAR" ] <Decl> { [ "VAR" ] <Decl> }
- 1 Block --» "BEGIN" <Bliste> "END"
- 1 Bliste --» <Bliste> ";" <Befehl> | ¢
- 1 Befehl --» <While> | <Repeat> | <If> | <Call> |
- 1 <Assign> | <Case> | <For> | <Read> |
- 1 <Rewrite> | <Append> | <Write> | <Seek> |
- 1 <Close> | <Return> | <Reset> | <Block>
- 1 Return --» "RETURN" "(" <Expr> ")"
- 1 While --» "WHILE" <Expr> "DO" <Bliste>
- 1 Repeat --» "REPEAT" <Bliste> "UNTIL" <Expr>
- 1 If --» "IF" <Expr> "THEN" <Befehl>
- 1 [ "ELSE" <Befehl> ]
- 1 Assign --» <Variabel> ":=" <Expr>
- 1 Variabel --» <id> { <ArrAdr> | <RecAdr> }
- 1 ArrAdr --» "[" <Expr> "]"
- 1 RecAdr --» "." <Variabel>
- 1 For --» "FOR" <Variabel> ":=" <Expr> ( "TO" |
- 1 "DOWNTO" <Expr> [ "BY" <Expr> ] "DO"
- 1 <Befehl>
- 1 Case --» "CASE" <Variabel> "OF"
- 1 <Fälle>
- 1 "END"
- 1 Fälle --» <Fälle> ";" <Fall> | <Fall> | ¢
- 1 Fall --» <Casefall> ":" <Befehl> ";" |
- 1 "ELSE" <Befehl> ";"
- 1 Casefall --» <Casefall> "," <Konsta> | <Konsta>
- 1 Konsta --» <Konst> ".." <Konst> | <Konst>
- 1 Konst --» <Bool> | <Char> | <Int>
- 1 Write --» "WRITE" <Callpar> |
- 1 "WRITELN" <Callpar>
- 1 Read --» "READ" <Callpar> |
- 1 "READLN" <Callpar>
- 1 Close --» "CLOSE" "(" <Variabel> ")"
- 1 Reset --» "RESET" "(" <Variabel> "," <String> ")"
- 1 Append --» "APPEND" "(" <Variabel> "," <String> ")"
- 1 Rewrite --» "REWRITE" "(" <Variabel> "," <String> ")"
- 1 Seek --» "SEEK" "(" <Variabel> "," <Expr> ")"
- 1 Expr --» <Relexpr> { ( "AND" | "OR" ) <Relexpr> }
- 1 Relexpr --» <Intexpr> { <Relation> <Intexpr> }
- 1 Relation --» ( "<" | "<>" | "<=" | ">" | "=> | "=" )
- 1 Intexpr --» <Term> { ( "+" | "-" ) <Term> }
- 1 Term --» <Factor>
- 1 { ( "*" | "/" | "MOD" | "DIV" ) <Factor> }
- 1 Factor --» <String> | <Variabel> | <Int> | <Real> |
- 1 "TRUE" | "FALSE" | "NOT" <Factor> |
- 1 <Call> | "-" <Factor> | "(" <Expr> ")"
- 1 String --» "'" <Char> { <Char> } "'"
- 1 Real --» <Int> | <Int> "." | <Int> "." <Int>
- %Ende
-
-
-